#ifndef SKILL_H
#define SKILL_H

#include <string>
using std::string;

class Buff
{
public:
	Buff();
	int m_value;
	int m_duration;
	int m_step;
	int m_type;
};
struct SkillData
{
	SkillData(int v, int d, int s)
		: m_value(v)
		, m_duration(d)
		, m_step(s)
	{	}
	int		m_value;	
	int		m_duration;
	int		m_step;
};

class Skill
{
public:
	Skill(const string& name, int type, int target, int val, int duration, int step, const string& desc);
	enum SKILLTIMING{
		SK_ATTRIB_WIN=0,	SK_ATTRIB_LOSE=1,	SK_ATTRIB_DRAW=2,
		SK_FINAL_LOSE=3,	SK_FINAL_WIN=4,		SK_FINAL_DRAW=5,
	};
	enum SKILLTARGET{
		ST_SELF_HEALTH=0,	ST_ENEMY_HEALTH=1,
		ST_SELF_ATT=2,		ST_ENEMY_ATT=3,
		ST_SELF_BUFF=4,		ST_ENEMY_DEBUFF=5,
		ST_SELF_ATTRIB=6,	ST_ENEMY_ATTRIB=7,	ST_ALL_ATTRIB=8,
	};
	
	SkillData GetCopy();
	string	m_name;
	int		m_type;
	int		m_target;
	int		m_value;	
	int		m_duration;
	int		m_step;
	string	m_desc;
};

#endif 